<?php

/*
 * Author: Quan Van Sinh
 * Email: sinhvnb@vietnambiz.com
 */

class category {

    function category(){}
    
    function lastestArticle($limit=20) {
        global $db;
        $sql = "SELECT title,link,image,short_description FROM article WHERE status='yes' ORDER BY create_date DESC LIMIT $limit";
        return $db->query($sql);
    }

    function getArticles($link) {
        global $db, $config;
        $sqlGetCatId = "SELECT id,name,link FROM article_category WHERE link='$link'";
        $rsGetCatId = $db->query_first($sqlGetCatId);
        if (intval($rsGetCatId['id']) > 0) {
            $arrCatId = $this->get_cat_id_to_arr($rsGetCatId['id']);
            $str_cat_id = '';
            for ($i = 0; $i < count($arrCatId); $i++) {
                if ($i == (count($arrCatId) - 1)) {
                    $str_cat_id .= $arrCatId[$i];
                } else {
                    $str_cat_id .= $arrCatId[$i] . ',';
                }
            }


            if ($str_cat_id == '') {
                $str_cat_id = $rsGetCatId['id'];
                $sql = "SELECT count(a.id) as numrows FROM article a WHERE a.cat_id = " . $rsGetCatId['id'] . " AND a.status='yes' ORDER BY a.create_date DESC";
            } else {
                $str_cat_id = $str_cat_id . ',' . $rsGetCatId['id'];
                $sql = "SELECT count(a.id) as numrows FROM article a WHERE a.cat_id IN ($str_cat_id) AND a.status='yes' ORDER BY a.create_date DESC";
            }
            $rsTotalRows = $db->query_first($sql);
            $totalRows = $rsTotalRows['numrows'];
            $totalPages = ceil($totalRows / $config ['total_article_on_category']);
            $start = (($config ['page'] * $config ['total_article_on_category']) - $config ['total_article_on_category']);
            $limit = $config ['total_article_on_category'];

            if ($str_cat_id == '') {
                $sql = "SELECT a.* FROM article a WHERE a.cat_id=" . $rsGetCatId['id'] . " AND a.status='yes' ORDER BY a.create_date DESC LIMIT $start,$limit";
            } else {
                $sql = "SELECT a.* FROM article a WHERE a.cat_id IN ($str_cat_id) AND a.status='yes' ORDER BY a.create_date DESC LIMIT $start,$limit";
            }
            $rsArticles = $db->query($sql);
            return array(
                "str_cat_id" => $str_cat_id,
                "cat_name" => $rsGetCatId['name'],
                "cat_link" => $rsGetCatId['link'],
                "totalRows" => $totalRows,
                "rsArticles" => $rsArticles
            );
        } else {
            header("Location: " . $config['domain']);
        }
    }

    function get_cat_id_to_arr($parent_id = 0, $trees=null) {
        global $db;
        if (!$trees)
            $trees = array();
        $rsCat = $db->query("SELECT id FROM article_category WHERE  parent_id = " . intval($parent_id));
        if ($rsCat) {
            while ($rs = $db->fetch_array($rsCat)) {
                $trees[] = $rs['id'];
                $trees = $this->get_cat_id_to_arr($rs['id'], $trees);
            }
        }
        return $trees;
    }

    function getHousingByCategory($limit) {
        global $db;
        global $config;
        $sqlCheck = "SELECT parent_id FROM housing_category WHERE id=" . intval($config['id']);
        $rsCheck = $db->query_first($sqlCheck);
        if ($rsCheck['parent_id'] != 0) {
            $sqlTotal = "SELECT id, title, price,price_unit,price_type,description
                    FROM housing h
                    WHERE
                    h.cat_id=" . $config['id'] . " ORDER BY h.create_date DESC";

            $totalRows = $db->num_rows($db->query($sqlTotal));
            $totalPages = ceil($totalRows / $config ['total_house_on_category']);
            $start = (($config ['page'] * $config ['total_house_on_category']) - $config ['total_house_on_category']);

            $sql = "SELECT id, title, price,price_unit,price_type,description
                FROM housing h
                WHERE
                h.cat_id=" . $config['id'] . " ORDER BY h.create_date DESC LIMIT $start,$limit";
            return Array("rs" => $db->query($sql), "totalRows" => $totalRows);
        } else {
            $sqlTotal = "SELECT id, title, price,price_unit,price_type,description
                    FROM housing h ORDER BY h.create_date DESC";

            $totalRows = $db->num_rows($db->query($sqlTotal));
            $totalPages = ceil($totalRows / $config ['total_house_on_category']);
            $start = (($config ['page'] * $config ['total_house_on_category']) - $config ['total_house_on_category']);

            $sql = "SELECT id, title, price,price_unit,price_type,description
                FROM housing h ORDER BY h.create_date DESC LIMIT $start,$limit";
            return Array("rs" => $db->query($sql), "totalRows" => $totalRows);
        }
    }

    
    function ortherArticleInCategory($create_date, $strCategoryId, $limit=10) {
        global $db, $config;
        $sql = "SELECT title,link,create_date FROM article WHERE create_date < '$create_date' AND cat_id IN ($strCategoryId) AND status='yes' ORDER BY create_date DESC LIMIT $limit";
        $rs = $db->query($sql);
        return $rs;
    }

}

?>